﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;

using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Base;

using MM.Entities;
using MM.Business;  

namespace MM
{
    public partial class frmTaoPYC : Form
    {
        public List<CHI_TIET_PYC> lstCT = new List<CHI_TIET_PYC>();
        public List<VAT_TU_PHU_TUNG> lstVTPT = new List<VAT_TU_PHU_TUNG>();
        string _matau = "";
        string _nguoitao = "";
        string _sConn = "";
        string _plant = "";
        frmTimKiemVTPT frm;
        frmTimKiemTheoHinh frm1;
        frmImpa_TimKiem frm2;
        frmImpa_TimKiemTheoHinh frm3;

        public frmTaoPYC(string sConn)
        {
            InitializeComponent();
            _sConn = sConn;
            this.InitForm();

            Common.SetColor(this);
        }
       
        private void InitForm()
        {
            _matau = frmDangNhap.objTau._tenTau2KiTu;
            _nguoitao = frmDangNhap.objTaiKhoan._soCMND;
            _plant = frmDangNhap.objTau._plantReferenceSAP;

            this.txtNgayThucHien.Text = DateTime.Today.Day.ToString() + "/" + DateTime.Today.Month.ToString() + "/" + DateTime.Today.Year.ToString();
            this.txtNguoiThucHien.Text = _nguoitao;
            dateEditNgayGiaoHang.DateTime = DateTime.Today;

            this.gridControl1.DataSource = lstCT;

            this.InitLoaiPR();

            this.popupContainerEdit1.Properties.CloseOnOuterMouseClick = false;
            
        }

        private void InitGrid()
        {
            
            
        }

        private void InitLoaiPR()
        {
            clsTRANG_THAI_VTPT ttCtrl = new clsTRANG_THAI_VTPT(_sConn);
            List<TRANG_THAI_VTPT> lst = new List<TRANG_THAI_VTPT>();
            lst = ttCtrl.usp_SelectTRANG_THAI_VTPTsAll();
            lst.RemoveAll(delegate(TRANG_THAI_VTPT x) {return x.MaTrangThai>=2 ;});
            this.cboLoaiPR.DataSource = lst;
            this.cboLoaiPR.DisplayMember = "TenTrangThai";
            this.cboLoaiPR.ValueMember = "MaTrangThai";
        }

        private void cmdThemVTPT_Click(object sender, EventArgs e)
        {
            try
            {
                CHI_TIET_PYC objCT = new CHI_TIET_PYC();
                
                if (lstVTPT.Count == 0 || lstVTPT.Count==1) // người dùng tự điền mã
                {
                    if (this.txtMaVTPT.Text.Trim() == "")
                    {
                        MessageBox.Show("Vui lòng chọn VTPT");
                        return;
                    }
                    // kiểm tra dữ liệu về Số Lượng và Ngày giao hàng
                    try
                    {
                        float sl = float.Parse(this.txtSoLuong.Text);
                    }
                    catch
                    {
                        MessageBox.Show("Vui lòng nhập đúng số lượng");
                        return; 
                    }

                    if (float.Parse(this.txtSoLuong.Text) <= 0)
                    {
                        MessageBox.Show("Vui lòng nhập đúng số lượng");
                        return; 
                    }
                    //if (dateEditNgayGiaoHang.DateTime <= DateTime.Today)
                    //{
                    //    MessageBox.Show("Ngày giao hàng phải lớn hơn ngày hiện tại");
                    //    return; 
                    //}
                    if ((int)cboLoaiPR.SelectedValue == -1)
                    {
                        MessageBox.Show("Chọn Trạng thái vật tư phụ tùng");
                        return;
                    }
                    // kiểm tra tồn tại của VTPT                   

                    VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();

                    clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);

                    obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(this.txtMaVTPT.Text.Trim(),frmDangNhap.objTau.maTau);
                    if (obj != null && obj._maVTPT != "")
                    {

                        objCT.STT = lstCT.Count + 1;
                        objCT.MaThietBi = obj._maVTPT;
                        objCT.TenVTPT = obj._tenVTPT;
                        objCT.SoLuong = float.Parse(this.txtSoLuong.Text);
                        objCT.NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                        objCT.oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                        objCT.oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text;
                        objCT.GhiChu = this.txtGhiChu.Text;


                        // Kiem tra đã tồn tại trong danh sách
                        int index = -1;
                        index = lstCT.FindIndex(delegate(CHI_TIET_PYC x) { return x.MaThietBi == objCT.MaThietBi && x.MaTrangThai==objCT.MaTrangThai ; });
                        if (index >= 0)
                        {
                            if (MessageBox.Show("ĐÃ TỒN TẠI VTPT" + objCT.MaThietBi+" TRONG DANH SÁCH YC \n BẠN CÓ MUỐN TĂNG THÊM SỐ LƯỢNG", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                                lstCT[index].SoLuong += objCT.SoLuong;
                        }
                        else
                        {
                            // Kiem tra nếu trạng thái là gia công thì phải nhập Component
                            if (objCT.oTRANG_THAI_VTPT.MaTrangThai == 1) // gia cong
                            {
                                List<CHI_TIET_PDH_COMPONENT> lstCom = new List<CHI_TIET_PDH_COMPONENT>();
                                lstCom = (List<CHI_TIET_PDH_COMPONENT>)this.gridControl2.DataSource;
                                if (lstCom != null && lstCom.Count > 0) // đã nhập Component
                                {
                                    objCT.lstComponent = lstCom;
                                    for (int c = 0; c < objCT.lstComponent.Count; c++)
                                    {
                                        objCT.lstComponent[c].MaComponent = objCT.STT;
                                    }
                                    lstCT.Add(objCT);


                                    this.gridControl2.DataSource = null;
                                }
                                else
                                    MessageBox.Show("VUI LÒNG NHẬP CHỌN CÁC VTPT ĐI GIA CÔNG");
                            }
                            else
                                lstCT.Add(objCT);
                        }


                        lstVTPT.Clear();
                    }
                    else
                        MessageBox.Show("MÃ VẬT TƯ PHỤ TÙNG KHÔNG TỒN TẠI");
                }
                
                for (int i = 0; i < lstVTPT.Count; i++)
                {
                    objCT = new CHI_TIET_PYC();
                    objCT.STT = lstCT.Count + 1;
                    objCT.MaThietBi=lstVTPT[i]._maVTPT;
                    objCT.TenVTPT = lstVTPT[i]._tenVTPT;
                    objCT.oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                    objCT.oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text.ToString();
                    objCT.NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                    objCT.GhiChu = this.txtGhiChu.Text;

                    // Kiem tra đã tồn tại trong danh sách
                    int index = -1;
                    index = lstCT.FindIndex(delegate(CHI_TIET_PYC x) { return x.MaThietBi == objCT.MaThietBi; });
                    if (index >= 0)
                        lstCT[index].SoLuong += objCT.SoLuong;
                    else
                    {                        
                         lstCT.Add(objCT);
                    }
                    

                }

                lstVTPT.Clear();
                this.gridControl1.RefreshDataSource();
                this.gridDSVT.FocusedRowHandle = lstCT.Count - 1;

                
            }
            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
        }

        private void frmTaoPYC_Paint(object sender, PaintEventArgs e)
        {
            //Common.PaintGradientColor(Color.LightYellow, Color.LightSkyBlue, System.Drawing.Drawing2D.LinearGradientMode.Vertical, this.Width, this.Height, this);            
        }

        private void cmdLuu_Click(object sender, EventArgs e)
        {
            try
            {
                // Kiem tra xem nguoi dung da dien day du thong tin ve So luong va Ngay giao hang chua
                for (int i = 0; i < lstCT.Count; i++)
                {
                    if (lstCT[i].SoLuong <= 0) 
                    {
                        MessageBox.Show("Bạn chưa điền số lượng cho VTPT thứ " + lstCT[i].STT.ToString());
                        return;                                                                                                                                                                                                                                                                                                                                                                     
                    }
                    //if (lstCT[i].NgayGiaoHang <= DateTime.Today)
                    //{
                    //    MessageBox.Show("Ngày Giao Hàng của VTPT thứ  " + lstCT[i].STT.ToString() + " phải lớn hơn ngày hiện tại");
                    //    return;
                    //}
                    if (lstCT[i].oTRANG_THAI_VTPT.MaTrangThai == -1)
                    {
                        MessageBox.Show("Trạng thái VTPT thứ  " + lstCT[i].STT.ToString() + " chưa hợp lệ");
                        return;
                    }
                    if (lstCT[i].oTRANG_THAI_VTPT.MaTrangThai == 1) // VTPT DUOC YEU CAU DI GIA CONG
                    {
                        if (lstCT[i].lstComponent.Count == 0)
                        {
                            MessageBox.Show("VUI LÒNG NHẬP VTPT GIA CÔNG ĐỂ TẠO NÊN THÀNH PHẨM CÓ MÃ:  " + lstCT[i].MaThietBi);
                            return;
                        }
                        // kiem tra da nhap kho hang OLD chua ?
                        TON_KHO oTK = new TON_KHO();
                        clsTON_KHO tkCtrl = new clsTON_KHO(_sConn);
                        List<TON_KHO> lstTK = new List<TON_KHO>();

                        for (int c = 0; c < lstCT[i].lstComponent.Count; c++)
                        {
                            oTK = new TON_KHO();
                            oTK.MaVTPT = lstCT[i].lstComponent[c].MaThietBi;
                            oTK.MaTrangThai = 2;
                            oTK.MaKho = "";

                            lstTK = tkCtrl.usp_SelectTON_KHO_ByMaKho(oTK.MaKho, oTK.MaVTPT, 2, null, null);
                            if (lstTK.Count == 0)
                            {
                                MessageBox.Show("VTPT gia công: " + lstCT[i].lstComponent[c].MaThietBi + " không tồn tại trạng thái CŨ trong KHO!\n PHẢI NHẬP KHO HÀNG CẦN ĐI GIA CÔNG TRƯỚC RỒI MỚI TẠO PHIẾU YÊU CẦU CHO MẶT HÀNG GIA CÔNG");
                                return;
                            }
                            else
                            {
                                float soluong = 0;
                                for (int k = 0; k < lstTK.Count; k++)
                                {
                                    soluong += lstTK[k].SoLuong;
                                }
                                if (soluong <= 0)
                                {
                                    MessageBox.Show("VTPT gia công  " + lstCT[i].lstComponent[c].MaThietBi + " không tồn tại trạng thái CŨ trong KHO!\n PHẢI NHẬP KHO HÀNG CẦN ĐI GIA CÔNG TRƯỚC RỒI MỚI TẠO PHIẾU YÊU CẦU CHO MẶT HÀNG GIA CÔNG");
                                    return;
                                }
                                if (soluong < lstCT[i].lstComponent[c].SoLuong)
                                {
                                    MessageBox.Show("VTPT gia công  " + lstCT[i].lstComponent[c].MaThietBi + " HIỆN CHỈ TỒN KHO TRẠNG THÁI OLD LÀ:" + soluong.ToString() + "\n VUI LÒNG NHẬP LẠI SỐ LƯỢNG YÊU CẦU ( nhỏ hơn hoặc bằng" + soluong.ToString()+" )");
                                    return;
                                }
                            }
                        }
                    }                   
 
                }
                // xóa những vtpt có số lượng <=0
                lstCT.RemoveAll(delegate(CHI_TIET_PYC x) { return x.SoLuong <= 0; });

                if (lstCT.Count > 0)
                {
                    // Lay thong tin Phieu yeu cau
                    PHIEU_YEU_CAU oPYC = new PHIEU_YEU_CAU();
                    oPYC.MaPhieuYeuCau = "";
                    oPYC.MaTau = _matau;
                    oPYC.NguoiTao = _nguoitao;
                    oPYC.NgayTao = DateTime.Today;

                    // Insert Phieu yeu cau va Chi tiet PYC vao du lieu
                    clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                    string maphieuyeucau = "";
                    maphieuyeucau = pycCtrl.usp_InsertPHIEU_YEU_CAU_CHI_TIET_PYC(oPYC, lstCT);
                    this.txtMaPhieuYeuCau.Text = maphieuyeucau;
                    if (maphieuyeucau.Length != 10)
                        MessageBox.Show("LƯU PHIẾU YÊU CẦU KHÔNG THÀNH CÔNG");
                    else
                    {
                        this.cmdCapNhatSL.Enabled = false;
                        this.cmdThemVTPT.Enabled = false;
                        this.cmdXoaVTPT.Enabled = false;
                        this.cmdTiepTuc.Visible = true;
                        this.cmdLuu.Enabled = false;
                        this.gridControl1.RefreshDataSource();
                    }

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void gridDSVT_Click(object sender, EventArgs e)
        {
            GridView view = (GridView)sender;
            GridHitInfo info = view.CalcHitInfo(gridControl1.PointToClient(MousePosition));

            if (info.InRow || info.InRowCell)
            {

                this.txtMaVTPT.Text = lstCT[info.RowHandle].MaThietBi;
                this.lblTenVTPT.Text = lstCT[info.RowHandle].TenVTPT;
                this.txtSoLuong.Text = lstCT[info.RowHandle].SoLuong.ToString();
                this.dateEditNgayGiaoHang.DateTime = lstCT[info.RowHandle].NgayGiaoHang;                
                this.cboLoaiPR.Text = lstCT[info.RowHandle].TenTrangThai;

                if (lstCT[info.RowHandle].MaTrangThai == 1)// gia cong
                {
                    this.popupContainerEdit1.Visible = true;
                    this.gridControl2.DataSource = lstCT[info.RowHandle].lstComponent;
                    this.gridControl2.RefreshDataSource();
                }
                else
                {
                    this.popupContainerEdit1.Visible = false;
                    this.gridControl2.DataSource = null;
                    this.gridControl2.RefreshDataSource();
                }
            }
        }

        private void cmdCapNhatSL_Click(object sender, EventArgs e)
        {
            try
            {
                if (gridDSVT.FocusedRowHandle >= 0)
                {
                    if (lstCT[gridDSVT.FocusedRowHandle].MaThietBi == this.txtMaVTPT.Text.Trim())
                    {
                        try
                        {
                            float sl = float.Parse(this.txtSoLuong.Text);
                        }
                        catch { MessageBox.Show("NHẬP SỐ LƯỢNG CHƯA ĐÚNG!"); return; }

                        if (int.Parse(cboLoaiPR.SelectedValue.ToString()) != 1)
                        {
                            lstCT[gridDSVT.FocusedRowHandle].lstComponent.Clear();

                            lstCT[gridDSVT.FocusedRowHandle].SoLuong = float.Parse(this.txtSoLuong.Text);
                            lstCT[gridDSVT.FocusedRowHandle].NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                            lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                            lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text.ToString();
                            lstCT[gridDSVT.FocusedRowHandle].GhiChu = this.txtGhiChu.Text;
                        }
                        else // gia cong
                        {
                            List<CHI_TIET_PDH_COMPONENT> lstCom = new List<CHI_TIET_PDH_COMPONENT>();
                            lstCom = (List < CHI_TIET_PDH_COMPONENT >) gridControl2.DataSource;
                            if (lstCom == null || lstCom.Count == 0)
                            {
                                MessageBox.Show("CẬP NHẬT KHÔNG THÀNH CÔNG!\nVUI LÒNG NHẬP VTPT ĐI GIA CÔNG");
                            }
                            else
                            {
                                lstCT[gridDSVT.FocusedRowHandle].SoLuong = float.Parse(this.txtSoLuong.Text);
                                lstCT[gridDSVT.FocusedRowHandle].NgayGiaoHang = dateEditNgayGiaoHang.DateTime;
                                lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.MaTrangThai = int.Parse(cboLoaiPR.SelectedValue.ToString());
                                lstCT[gridDSVT.FocusedRowHandle].oTRANG_THAI_VTPT.TenTrangThai = cboLoaiPR.Text.ToString();
                                lstCT[gridDSVT.FocusedRowHandle].GhiChu = this.txtGhiChu.Text;
                                lstCT[gridDSVT.FocusedRowHandle].lstComponent = lstCom;
                                for (int c = 0; c < lstCT[gridDSVT.FocusedRowHandle].lstComponent.Count; c++)
                                {
                                    lstCT[gridDSVT.FocusedRowHandle].lstComponent[c].MaComponent = lstCT[gridDSVT.FocusedRowHandle].STT;
                                }
                            }
                        }

                        this.gridControl1.RefreshDataSource();

                        this.gridControl2.DataSource = null;
                        this.gridControl2.RefreshDataSource();
                    }
                    else
                        MessageBox.Show("Bạn chưa click chọn dòng có VTPT cần thay đổi thông tin ");
                }
                else
                    MessageBox.Show("Vui lòng chọn dòng có VTPT cần thay đổi thông tin ");
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void cmdXoaVTPT_Click(object sender, EventArgs e)
        {

            try
            {
                if (gridDSVT.FocusedRowHandle >= 0 && this.txtMaPhieuYeuCau.Text == "")
                {

                    lstCT.RemoveAt(gridDSVT.FocusedRowHandle);

                    this.gridControl1.RefreshDataSource();
                }
                else
                    MessageBox.Show("Vui lòng chọn dòng có VTPT cần XÓA ");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void cmdTiepTuc_Click(object sender, EventArgs e)
        {
            this.cmdCapNhatSL.Enabled = true;
            this.cmdThemVTPT.Enabled = true;
            this.cmdXoaVTPT.Enabled = true;
            this.cmdTiepTuc.Visible = false;
            this.cmdLuu.Enabled = true;
            this.lstCT.Clear();
            this.gridControl1.RefreshDataSource();
            this.gridControl2.DataSource = null;
            this.gridControl2.RefreshDataSource();
            this.txtMaPhieuYeuCau.Text = "";
            this.txtMaVTPT.Text = "";
            this.lblTenVTPT.Text = "";
            this.txtSoLuong.Text = "";
            this.txtGhiChu.Text = "";
            
        }

        private void cmdTimVTPT_Click(object sender, EventArgs e)
        {
            if (lstVTPT.Count == 0)
                frm = new frmTimKiemVTPT(_sConn);
            frm.SelectLstMaterial += new frmTimKiemVTPT.SelectListMaterialHandler(LuuDSVTPT);
            frm.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }

        private void LuuDSVTPT(object sender,lstVtptEventArgs e)
        {
            lstVTPT = e.lstVtpt;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            frmTimKiemVTPT frm1 = new frmTimKiemVTPT(_sConn);
            frm1.SelectLstMaterial += new frmTimKiemVTPT.SelectListMaterialHandler(LuuDSVTPT1);
            frm1.ShowDialog();
        }

        private void LuuDSVTPT1(object sender, lstVtptEventArgs e)
        {
            List<CHI_TIET_PDH_COMPONENT> lstCom = new List<CHI_TIET_PDH_COMPONENT>();
            List<CHI_TIET_PDH_COMPONENT> lstCom1 ;
            for (int i = 0; i < e.lstVtpt.Count; i++)
            {
                lstCom.Add(new CHI_TIET_PDH_COMPONENT());
                lstCom[lstCom.Count - 1].MaThietBi = e.lstVtpt[i]._maVTPT;
                lstCom[lstCom.Count - 1].TenThietBi = e.lstVtpt[i]._tenVTPT;
                lstCom[lstCom.Count - 1].SoLuong = 1;
                lstCom[lstCom.Count - 1].Plant = _plant;
                lstCom[lstCom.Count - 1].MaComponent = -1;
            }
            lstCom1 = (List < CHI_TIET_PDH_COMPONENT >)this.gridControl2.DataSource;
            for (int i = 0; i < lstCom.Count; i++)
            {
                if (lstCom1 == null)
                    lstCom1 = new List<CHI_TIET_PDH_COMPONENT>();

                if (lstCom1.FindIndex(delegate(CHI_TIET_PDH_COMPONENT x) { return x.MaThietBi == lstCom[i].MaThietBi; }) < 0)
                {                    
                     lstCom1.Add(lstCom[i]);
                }
            }
            this.gridControl2.DataSource = lstCom1;
            this.gridControl2.RefreshDataSource();
        }

        private void cboLoaiPR_SelectionChangeCommitted(object sender, EventArgs e)
        {
            if (this.cboLoaiPR.SelectedValue.ToString() == "1") // gia cong
            {
                this.popupContainerEdit1.Visible = true;
            }
            else
            {
                this.popupContainerEdit1.Visible = false;
            }
        }

        private void repositoryItemHyperLinkEdit1_Click(object sender, EventArgs e)
        {
            // XÓA COMPONENTS
            if (gridView1.FocusedRowHandle >= 0)
            {
                List<CHI_TIET_PDH_COMPONENT> lstCom = new List<CHI_TIET_PDH_COMPONENT>();
                lstCom = (List<CHI_TIET_PDH_COMPONENT>)this.gridControl2.DataSource;
                if (lstCom != null)
                {
                    if (MessageBox.Show("BẠN CÓ THẬT SỰ MUỐN XÓA?", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        
                        int macomponent = (int)lstCom[gridView1.FocusedRowHandle].MaComponent;
                        lstCom.RemoveAt(gridView1.FocusedRowHandle);
                        if (macomponent != -1) // đã được thêm vào ds yêu cầu
                            lstCT[macomponent - 1].lstComponent = lstCom;

                        this.gridControl2.DataSource = lstCom;
                        this.gridControl2.RefreshDataSource();
                    }
                }
            }
        }

     

        private void gridView1_LostFocus(object sender, EventArgs e)
        {
            gridView1.PostEditor();
            gridView1.UpdateCurrentRow();           
            
        }

        private void frmTaoPYC_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (lstCT.Count > 0 && this.txtMaPhieuYeuCau.Text == "")
            {
                if (MessageBox.Show("BẠN CHƯA LƯU THÔNG TIN PHIẾU YÊU CẦU!\n BẠN VẪN MUỐN THOÁT", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    e.Cancel = false;
                }
                else
                    e.Cancel = true;
            }
        }

        private void frmTaoPYC_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F8)
            {
                cmdLuu_Click(null, null);
                //MessageBox.Show("ok");
            }
            else              
                if (e.Control && e.KeyCode == Keys.I) // them moi
                {
                    cmdThemVTPT_Click(null,null);
                }
                else
                    if (e.Control && e.KeyCode == Keys.U) // cap nhat
                    {
                        cmdCapNhatSL_Click(null,null);
                    }
                    else
                        if (e.Control && e.KeyCode == Keys.D) // xoa
                        {
                            cmdXoaVTPT_Click(null,null);
                        }
        }

        private void tìmTheoNhiềuTiêuChíToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm == null || lstVTPT.Count==0)
            {
                frm = new frmTimKiemVTPT(_sConn,true);
                frm.SelectLstMaterial += new frmTimKiemVTPT.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }

        private void tìmTheoHìnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm1 == null)
            {
                frm1 = new frmTimKiemTheoHinh(_sConn,true);
                frm1.SelectLstMaterialByImg += new frmTimKiemTheoHinh.SelectListMaterialByImgHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm1.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");
            }
        }

        private void txtMaVTPT_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                // kiểm tra tồn tại của VTPT                   

                    VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();

                    clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);

                    obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(this.txtMaVTPT.Text.Trim(),frmDangNhap.objTau.maTau);
                    if (obj != null && obj._maVTPT != "" && obj._maVTPT != null)
                    {
                        this.lblTenVTPT.Text = obj._tenVTPT;
                        this.cmdThemVTPT.Enabled = true;
                    }
                    else
                    {
                        MessageBox.Show("KHÔNG TÌM THẤY THÔNG TIN VẬT TƯ NÀY");
                        this.cmdThemVTPT.Enabled = false;
                    }

            }
        }

        private void label1_Click(object sender, EventArgs e)
        {
            // copy du lieu tu PR khac
            try
            {
                frmTimPhieuYC f = new frmTimPhieuYC(_sConn);
                f.chonPYC += new frmTimPhieuYC.ChonPhieuYeuCau(GetPhieuYeuCau);
                f.Show(this);
            }
            catch { }
        }

        private void GetPhieuYeuCau(object sender, ChonPhieuYCEventArgs e)
        {            

            clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);

            lstCT = ctCtrl.SelectCHI_TIET_PYCByMaPhieuYeuCau(e.MaPhieuYeuCau);

            lstCT.RemoveAll(delegate(CHI_TIET_PYC x) { return x.TinhTrang == 1; });

            this.gridControl1.DataSource = lstCT;          

        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();

                clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);

                obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(this.txtMaVTPT_Component.Text.Trim(), frmDangNhap.objTau.maTau);
                if (obj != null && obj._maVTPT != "")
                {
                    this.lblMaVTPT_Component.Text = obj._tenVTPT;

                    List<CHI_TIET_PDH_COMPONENT> lstCom1 = new List<CHI_TIET_PDH_COMPONENT>();
                    List<CHI_TIET_PDH_COMPONENT> lstCom = new List<CHI_TIET_PDH_COMPONENT>();
                    lstCom1 = (List<CHI_TIET_PDH_COMPONENT>)this.gridControl2.DataSource;
                    if (lstCom1 != null)
                    {
                        lstCom = (List<CHI_TIET_PDH_COMPONENT>)this.gridControl2.DataSource;
                        int index = lstCom.FindIndex(delegate(CHI_TIET_PDH_COMPONENT x) { return x.MaThietBi == obj._maVTPT; });
                        if (index < 0)
                        {
                            lstCom.Add(new CHI_TIET_PDH_COMPONENT());
                            lstCom[lstCom.Count - 1].MaThietBi = obj._maVTPT;
                            lstCom[lstCom.Count - 1].TenThietBi = obj._tenVTPT;
                            lstCom[lstCom.Count - 1].SoLuong = 1;
                            lstCom[lstCom.Count - 1].Plant = _plant;
                            lstCom[lstCom.Count - 1].MaComponent = -1;
                        }
                        else
                        {
                            lstCom[index].SoLuong += 1;
                        }
                    }
                    else
                    {
                        lstCom.Add(new CHI_TIET_PDH_COMPONENT());
                        lstCom[lstCom.Count - 1].MaThietBi = obj._maVTPT;
                        lstCom[lstCom.Count - 1].TenThietBi = obj._tenVTPT;
                        lstCom[lstCom.Count - 1].SoLuong = 1;
                        lstCom[lstCom.Count - 1].Plant = _plant;
                        lstCom[lstCom.Count - 1].MaComponent = -1;
                    }

                    this.gridControl2.DataSource = lstCom;
                    this.gridControl2.RefreshDataSource();
                }
            }
            catch { }
        }

        private void tìmVTIMPATheoNhiềuTiêuChíToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm2 == null)
            {
                frm2 = new frmImpa_TimKiem(_sConn,true);
                frm2.SelectLstMaterial += new frmImpa_TimKiem.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm2.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");

            }
        }

        private void tìmVTIMPATheoHìnhToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (frm3 == null)
            {
                frm3 = new frmImpa_TimKiemTheoHinh(_sConn,true);
                frm3.SelectLstMaterial += new frmImpa_TimKiemTheoHinh.SelectListMaterialHandler(LuuDSVTPT);
            }
            else
                lstVTPT.Clear();
            frm3.ShowDialog();
            if (lstVTPT.Count > 0)
            {
                if (lstVTPT.Count == 1)
                {
                    this.txtMaVTPT.Text = lstVTPT[0]._maVTPT;
                    this.lblTenVTPT.Text = lstVTPT[0]._tenVTPT;
                }
                else
                    MessageBox.Show("Có " + lstVTPT.Count.ToString() + " VTPT đang được chọn!\nVui lòng Bấm nút THÊM VÀO DS để đưa các VTPT vừa tìm kiếm vào Danh sách đặt hàng");

            }
        }

        private void txtMaVTPT_Component_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                // kiểm tra tồn tại của VTPT                   

                VAT_TU_PHU_TUNG obj = new VAT_TU_PHU_TUNG();

                clsVAT_TU_PHU_TUNG vtptCtrl = new clsVAT_TU_PHU_TUNG(_sConn);

                obj = vtptCtrl.SelectVAT_TU_PHU_TUNG(this.txtMaVTPT.Text.Trim(), frmDangNhap.objTau.maTau);
                if (obj != null && obj._maVTPT != "")
                {
                    this.lblMaVTPT_Component.Text = obj._tenVTPT;
                    this.button2.Enabled = true;
                }
                else
                {
                    MessageBox.Show("KHÔNG TÌM THẤY THÔNG TIN VẬT TƯ NÀY");
                    this.button2.Enabled = false;
                }

            }
        }

        private void label3_Click(object sender, EventArgs e)
        {

        }

        


    }
}